time()
, clock()
, এবং difftime()
এর মাধ্যমে সময় মাপাসি প্রোগ্রামিং ভাষায় সময় মাপার জন্য time.h
হেডার ফাইলটি ব্যবহৃত হয়। সময় মাপার জন্য সি ভাষায় বিভিন্ন ফাংশন রয়েছে, যেমন time()
, clock()
, এবং **difftime()
**। এই ফাংশনগুলো সময়ের সাথে সম্পর্কিত বিভিন্ন কার্যক্রম যেমন সিস্টেম সময় বা প্রোগ্রামের রানটাইম পরিমাপ করতে ব্যবহৃত হয়। প্রতিটি ফাংশনই নির্দিষ্ট কাজের জন্য উপযোগী, এবং তাদের ব্যবহার সময় ব্যবস্থাপনা ও অপটিমাইজেশনের ক্ষেত্রে অত্যন্ত গুরুত্বপূর্ণ।
নিচে এই ফাংশনগুলোর ব্যবহার এবং কার্যকারিতা বিস্তারিতভাবে আলোচনা করা হলো।
time()
– সিস্টেম টাইমtime()
ফাংশনটি সিস্টেমের বর্তমান সময়কে ইউনিকোড টাইম স্ট্যাম্প (সময় গণনা সেকেন্ডে) হিসেবে রিটার্ন করে। এটি সাধারণত সিস্টেমের বর্তমান সময় মাপার জন্য ব্যবহৃত হয় এবং এটি প্রাথমিক সময়ের (epoch) থেকে সেকেন্ডের সংখ্যা রিটার্ন করে, যেটি 1970 সালের জানুয়ারি 1 তারিখ 00:00:00 UTC (Coordinated Universal Time) থেকে গণনা করা হয়।
time_t time(time_t *t);
t
– যদি পয়েন্টার দেওয়া হয়, তাহলে এটি প্রাপ্ত সময়ে স্টোর করা হয়। এটি ঐচ্ছিক, তাই time(NULL)
লিখেও ফাংশনটি ব্যবহার করা যেতে পারে।#include <stdio.h>
#include <time.h>
int main() {
time_t current_time;
current_time = time(NULL); // বর্তমান সিস্টেম টাইম পাওয়া
if (current_time == ((time_t)-1)) {
printf("Error getting the time.\n");
return 1;
}
printf("Current time: %ld seconds since the Epoch\n", current_time);
return 0;
}
এখানে time(NULL)
ফাংশনটি বর্তমান সময় (epoch থেকে সেকেন্ডে) রিটার্ন করেছে এবং এটি current_time
ভেরিয়েবলে সংরক্ষিত হয়েছে।
clock()
– প্রোগ্রামের রানটাইমclock()
ফাংশনটি প্রোগ্রামের রানটাইম পরিমাপ করতে ব্যবহৃত হয়। এটি CPU টাইম (সর্বমোট CPU ব্যবহার সময়) রিটার্ন করে, যা সেকেন্ডে পরিমাপ করা হয়। তবে, এটি সিস্টেম সময় নয়; এটি শুধুমাত্র প্রোগ্রামের CPU ব্যবহারকে হিসাব করে। তাই, যদি প্রোগ্রামটি অন্য কোনো প্রক্রিয়া বা থ্রেড দ্বারা ব্যস্ত না থাকে, তবে এটি একটি নির্ভুল সময় পরিমাপ করবে।
clock_t clock(void);
clock_t
টাইপটি ফাংশনটির রিটার্ন টাইপ যা সিস্টেমের ব্যবহৃত CPU সময়ের মোট মান।#include <stdio.h>
#include <time.h>
int main() {
clock_t start_time, end_time;
double time_taken;
start_time = clock(); // প্রোগ্রাম শুরু হওয়ার সময়
// কিছু কোড যা সময় নেবে
for (long i = 0; i < 1000000; i++) {
// উদ্দেশ্যহীন কাজ
}
end_time = clock(); // প্রোগ্রাম শেষ হওয়ার সময়
time_taken = ((double)(end_time - start_time)) / CLOCKS_PER_SEC; // CPU সময় সেকেন্ডে পরিণত করা
printf("Time taken: %f seconds\n", time_taken);
return 0;
}
এখানে clock()
ফাংশনটি প্রোগ্রামের CPU সময় গণনা করেছে এবং CLOCKS_PER_SEC
দ্বারা এটি সেকেন্ডে রূপান্তরিত হয়েছে।
difftime()
– দুটি সময়ের মধ্যে পার্থক্যdifftime()
ফাংশনটি দুটি সময়ের মধ্যে পার্থক্য নির্ধারণ করতে ব্যবহৃত হয়। এটি সাধারণত time()
ফাংশন থেকে প্রাপ্ত সময়ের মধ্যে পার্থক্য বের করার জন্য ব্যবহৃত হয়, এবং এটি সেকেন্ডে পার্থক্য রিটার্ন করে। এটি একটি প্রক্রিয়া বা ইভেন্টের সময়কাল পরিমাপ করতে সহায়ক।
double difftime(time_t time1, time_t time2);
time1
এবং time2
হল দুটি time_t
টাইপের সময় মান, যেগুলোর মধ্যে পার্থক্য নির্ধারণ করা হবে।#include <stdio.h>
#include <time.h>
int main() {
time_t start_time, end_time;
start_time = time(NULL); // শুরু সময়
// কিছু বিলম্ব
for (long i = 0; i < 10000000; i++);
end_time = time(NULL); // শেষ সময়
double elapsed_time = difftime(end_time, start_time); // সময়ের পার্থক্য নির্ধারণ
printf("Elapsed time: %.2f seconds\n", elapsed_time);
return 0;
}
এখানে difftime()
ফাংশনটি শুরু এবং শেষ সময়ের মধ্যে পার্থক্য নির্ধারণ করেছে এবং সেকেন্ডে ফলাফল প্রদর্শন করেছে।
ফাংশন | কাজ | সিঙ্কট্যাক্স |
---|---|---|
time() | সিস্টেমের বর্তমান সময় পাওয়া | time_t time(time_t *t); |
clock() | প্রোগ্রামের CPU ব্যবহৃত সময় পরিমাপ করা | clock_t clock(void); |
difftime() | দুটি সময়ের মধ্যে পার্থক্য নির্ধারণ | double difftime(time_t time1, time_t time2); |
এই ফাংশনগুলো time.h
হেডার ফাইলের অংশ এবং সি প্রোগ্রামে সময় সম্পর্কিত কার্যক্রমের জন্য অপরিহার্য। time()
সিস্টেম সময়, clock()
প্রোগ্রামের CPU সময়, এবং difftime()
দুটি সময়ের মধ্যে পার্থক্য নির্ধারণ করতে ব্যবহৃত হয়।
common.read_more